/*global pi */
pi.mod.define('pi.scene.ray', function (pi) {
	"use strict";

	var module = {};

	/** 创建一条射线 */
	module.create = function (start, end) {
		var ray = {},
			dist = pi.math.vec3.distance(end, start),
			dir = {};

		ray.start = start;

		pi.math.vec3.sub(dir, end, start);
		pi.math.vec3.normalize(dir, dir);
		ray.end = end;

		/** 获取射线长度 */
		ray.getDist = function () {
			return dist;
		};

		/** 根据从 start 起算的距离，确定一个射线上的点 */
		ray.getPtByDist = function (d) {
			var pos = {};

			pi.math.vec3.scale(pos, dir, d);
			pi.math.vec3.add(pos, pos, start);
			return pos;
		};

		return ray;
	};

	return module;
});
